@charset "utf-8";

header{
	position: relative;
	margin: 0 auto;
	width: 100%;
	background: #062926;
	background: linear-gradient(90deg,rgba(6, 41, 38, 1) 0%, rgba(47, 112, 158, 1) 100%);
	text-align: center;
	border-bottom: solid 1px #ffffff;
}
header .navLogo{
	position: relative;
	display: block;
	padding: 3px 0;
	z-index: 100;
}
header .navLogo img{
	position: relative;
	height: 35px;
	width: auto;
	margin: 0 auto;
}


/* タイトル装飾 */
.contWrap{position: relative;}
.h2bg{
	position: absolute;
	left: 0;
	bottom:-32%;
	height: 0;
	padding-top: 18.23%;
	width: 100%;
	display: block;
	mix-blend-mode: screen;
}
.h2bg::before{
	position: absolute;
	top:0;
	left: 0;
	height: 100%;
	width: 100%;
	content: '';
	display: block;
	background-position: 50% 0;
	background-repeat:no-repeat;
	background-size: 120% auto;
	background-image: url("../img/bg_ttl.png");
	transform: translate3d(0,0,0);
}

/* lead */
#lead{
	position: relative;
	margin: 0 auto;
}
#lead .title{
	position: relative;
	margin: 5px auto 0 auto;
	width: 100%;
	max-width: 752px;
}
#lead .leadTxt{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 60px);
	background-color: rgba(233,251,255,0.8);
	padding: 20px 30px;
}
#lead .leadTxt .bg{
	position: absolute;
	top:-5px;
	left: 0;
	width: 100%;
	height: calc(100% + 30px);
	background-image: url("../img/bg_lead_l.png"),  url("../img/bg_lead_r.png");
	background-position: 0 0, 100% 0;
	background-repeat: no-repeat, no-repeat;
	background-size: auto 100%, auto 100%;
}
#lead .leadTxt .text{
	position: relative;
	margin: 0 auto;
}
#lead .leadTxt p{
	position: relative;
	z-index: 100;
	font-size: min(3.8vw, .18rem);
	line-height: 1.8em;
}
#lead .leadTxt .att{
	padding-top: 1em;
	font-size: min(3.4vw, .15rem);
}

/* とは */
#about{
	position: relative;
	margin: 0 auto;
	padding: 30px 0 0 0;
}
#about .textWrap{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 80px);
	max-width: 920px;
	background-color: rgba(4,33,39,0.8);
	padding: 30px 20px;
	outline: solid 1px #ffffff;
	outline-offset: -1px;
	color: #ffffff;
}
#about .textWrap::after{
	position: absolute;
	bottom: -15px;
	right: 8px;
	height: 40px;
	width: 38px;
	content: '';
	display: block;
	background-position: 100% 100%;
	background-repeat:no-repeat;
	background-size: contain;
	background-image: url("../img/bg_about.png");
}
#about h2{
	position: relative;
	margin: 0 auto;
	width:100%;
	max-width: 480px;
	z-index: 10;
}
#about .h2bg{bottom: -180%; padding-top: 25%; transform: translateX(10px);mix-blend-mode: color-dodge;}
#about .h2bg::before{width:110%;bottom:-53%;background-size: 100% auto;background-image: url("../img/bg_ttl01.png");}
#about .text{
	position: relative;
	margin: 0 auto;
	padding-top: 25px;
}

/* バナー */
#banner{
	position: relative;
	margin: 0 auto;
	padding: 30px 0 0 0;
}
#banner h2{
	position: relative;
	margin: 0 auto;
	width: 100%;
	max-width: 480px;
	z-index: 20;
}
#banner .lists{
	position: relative;
	margin: 10px auto 30px auto;
	width: calc(100% - 30px);
	max-width: 960px;
	padding-bottom: 20px;
	overflow: hidden;
	outline: solid 1px #ffffff;
	outline-offset: -1px;
	background: #93D1FD;
	background: linear-gradient(145deg,#C4F1FB 0%, #E6FCFD 100%);
	box-sizing: border-box;
	gap:0 50px;
}
#banner .lists.online{margin: 20px auto 30px auto;}
#banner .lists .bg{
	position: absolute;
	top:0;
	left: 0;
	width: 100%;
	height: 100%;
	mix-blend-mode: multiply;
	background-position: 0 0;
	background-repeat:repeat;
	background-size: 340px auto;
	background-image: url("../img/bg_banner.png");
}
#banner .lists .Images{
	position: relative;
	width: calc(100% - 15px);
	margin: 8px auto 0 auto;
	outline: solid 1px #ffffff;
	outline-offset: -1px;
	box-shadow: -3px 3px 5px 0px rgba(64,104,138,0.5);
}
#banner .lists .Text{
	position: relative;
	margin: 0;
	width: 100%;
}
#banner .lists .Ttl{
	position: relative;
	margin: 20px auto;
	font-weight: 700;
	color: #a31308;
	text-align: center;
	font-size: min(8vw, .19rem);
	font-style: italic;
}
#banner .lists .Txt{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 30px);
}
#banner .lists .present{
	position: relative;
	margin: 10px auto 0 auto;
	width: calc(100% - 60px);
	background: #93D1FD;
	background: linear-gradient(145deg,rgba(147, 209, 253, 1) 0%, rgba(171, 233, 231, 1) 100%);
	padding: 15px;
}
#banner .lists .present .Ttl{
	margin: 0 auto 10px auto;
	color: #c82708;
	text-align: center;
	font-size: min(5vw, .15rem);
	font-style: normal;
	width:100%;
}
#banner .lists .present .Txt{width: calc(100% - 10px);}
#banner .lists .present .Img{
	position: relative;
	margin: 10px auto 0 auto;
}
#banner .lists .present .Img img{margin: 0 auto;}
#banner .lists .links{
	position: relative;
	margin: 10px auto;
	background-color: #c82708;
	border: solid 1px #c82708;
	color: #ffffff;
	padding: 10px 0;
	width: 16em;
	max-width: 90%;
	border-radius: 100px;
	display: block;
	text-align: center;
	line-height:1em;
	transition: all .3s ease-out;
}
#banner .lists .links:hover{
	background-color: #ffffff;
	color: #c82708;
}

#enter{
	position: relative;
	margin:  60px auto 0 auto;
}
#enter a{
	position: relative;
	margin:  0 auto;
	display: block;
	width: calc(100% - 40px);
	max-width: 440px;
}

/* contact */
#contact{
	position: relative;
	margin: 60px auto 0 auto;
	width: calc(100% - 40px);
	background-color: rgba(233,251,255,0.8);
	outline: solid 1px #ffffff;
	outline-offset: -1px;
}
#contact h4{
	position: relative;
	margin: 0 auto;
	background-color: #ffffff;
	text-align: center;
	padding: 5px 0;
}
#contact .text{
	position: relative;
	margin: 0 auto;
	padding: 20px 30px;
}
#contact .text .button{margin: 20px auto; width: 15em;max-width: 100%;}
#contact .text .red{color: #DA483C;}
#contact .text .cautionWrap{
	position: relative;
	margin: 0 auto;
}
#contact .text .cautionWrap p{
	position: relative;
	margin: 0 auto;
	font-size: 90%;
	padding-left: 1em;
}
#contact .text .cautionWrap p::before{
	position: absolute;
	top:0;
	left: 0;
	content: '※';
}

/* login */
#login{
	position: relative;
	margin: 0 auto;
	padding: 40px 0 0 0;
}
#login h2{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 40px);
	max-width: 580px;
	z-index: 10;
}
#login .h2bg{bottom: -190%; padding-top: 22%; transform: translateX(0);}
#login .h2bg::before{width:110%;background-size: contain;background-image: url("../img/bg_ttl02.png");}
#login .inputArea{
	position: relative;
	margin: 25px auto 0 auto;
	width: calc(100% - 70px);
	background-color: rgba(233,251,255,0.8);
	padding: 10px 20px 20px 20px;
	text-align: center;
	outline: solid 1px #ffffff;
	outline-offset: -1px;
}
#login .inputArea p{
	position: relative;
	margin:20px auto 0 auto;
	max-width: 640px;
}
#login .inputArea p.lead{font-size: 96%;}
#login .inputArea p span{display: block;font-size: min(3vw, 80%);}
#login .inputArea button{margin: 15px auto 10px auto;}

/*story */
.story{
	position: relative;
	margin: 0 auto;
	padding-top: 30px;
}
.story h2{
	position: relative;
	margin: 0 auto;
	width: 100%;
	max-width: 640px;
	transform: translateY(-25px);
	z-index: 20;
}
.story .storyWrap{
	position: relative;
	margin: 20px auto 0 auto;
	padding: 5px 0 25px 0;
	max-width: 960px;
	background: #86A7F5;
	background: linear-gradient(315deg,rgba(134, 167, 245, 0.85) 0%, rgba(166, 229, 247, 0.85) 100%);
	width: calc(100% - 40px);
	outline: solid 1px #ffffff;
	outline-offset: -1px;
}
#lastQ .story .storyWrap{padding: 25px 0;}
.story .storyWrap .bg{
	position: absolute;
	top: -25px;
	left: -20px;
	width: calc(100% + 40px);
	height: 0;
	padding-top: 400px;
	background-image: url("../img/bg_story.png");
	background-size: 100% auto;
	background-position: 0 0;
	background-repeat: no-repeat;
}

.story .storyWrap p{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 30px);
	font-weight: bold;
	font-size: min(3.8vw, .14rem);
	line-height: 1.8em;
	z-index: 30;
}
.story .storyWrap .Img{
	position: relative;
	width: min(50%, 220px);
	float: right;
}
.story .storyWrap .Img img{
	position: relative;
	margin: -125px auto 0 auto;
	width: 100%;
	height: auto;
	transform: translateX(20px);
}

/* nazo01 */
#nazo01{position: relative;}
/* nazo02 */
#nazo02{position: relative;display: none;}
/* nazo03 */
#nazo03{position: relative;display: none;}
/* nazo04 */
#nazo04{position: relative;display: none;}
/* nazo05 */
#nazo05{position: relative;display: none;}
/* nazo06 */
#nazo06{position: relative;display: none;}
/* lastQ */
#lastQ{position: relative;display: none;}
/* mission */
.mission{
	position: relative;
	margin:  50px auto 20px auto;
}
.mission .missionWrap{
	position: relative;
	margin: 0 auto;
	background-color: rgba(233,251,255,0.8);
	padding: 20px 0;
	border-top: solid 1px #ffffff;
	border-bottom: solid 1px #ffffff;
}
.mission .missionWrap::after{
	position: absolute;
	top: -40px;
	left: 50%;
	transform: translateX(-50%);
	width: 13%;
	max-width: 53px;
	height: 0;
	padding-top: 15%;
	content: '';
	background-image: url("../img/arrow.png");
	background-size: contain;
	background-position:50% 0;
	background-repeat: no-repeat;
}
.mission .nazoImages{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 30px);
	max-width: 740px;
}
.mission .hintWrap{
	position: relative;
	margin: 20px auto 40px auto;
}
.mission .hintInWrap{
	position: relative;
	margin: 0 auto 10px auto;
	width: calc(100% - 100px);
	max-width: 490px;
	border: solid 1px #033040;
	background-color: #033040;
}
.mission .hintWrap .Btnhint{
	position: relative;
	margin: 0 auto;
	padding: 3px 20px;
	text-align: center;
	color: #ffffff;
	cursor: pointer;
	font-size: .13rem;
	transition: all .3s ease-out;
}
.mission .hintWrap .Btnhint:hover{background-color: #00688D;}
.mission .hintWrap .hintTxt{
	position: relative;
	margin: 0 auto;
	padding: 10px;
	font-size: .13rem;
	display: none;
	background-color: #ffffff;
}
.mission .inputArea{
	margin: 0 auto;
	padding-bottom: 10px;
	width: calc(100% - 30px);
}
.mission .inputArea .inputTxt.hidden{display: none;}

/* clear */
#clear{
	position: relative;
	margin: 0 auto;
}
#clear .title{
	position: relative;
	margin:-20px auto 0 auto;
	width: 100%;
	z-index: 10;
}
.titlebg{
	position: absolute;
	left: -15px;
	top:41%;
	height: 0;
	padding-top: 20%;
	width: 100%;
	display: block;
	mix-blend-mode: screen;
	z-index: 11;
}
.titlebg::before{
	position: absolute;
	top:0;
	left: 0;
	height: 100%;
	width: 100%;
	content: '';
	display: block;
	background-position: 0 0;
	background-repeat:no-repeat;
	background-size: contain;
	background-image: url("../img/bg_ttl01.png");
}
#clear .clearTxt{
	position: relative;
	margin: -23% auto 0 auto;
	width: calc(100% - 80px);
	background-color: rgba(247,255,192,0.9);
	padding: 30px 20px;
	outline: solid 1px #ffffff;
	outline-offset: -1px;
}
#clear .clearTxt .bg{
	position: absolute;
	bottom:-50px;
	left: -20px;
	width: calc(100% + 40px);
	height:480px;
	content: '';
	display: block;
	background-image: url("../img/bg_clear.png");
	background-position: 50% 100%;
	background-repeat: no-repeat;
	background-size: 100% auto;
}
#clear .clearTxt p{
	font-size: min(3.8vw, .18rem);
	line-height: 2em;
	font-weight: bold;
	z-index: 100;
}

/* share */
#share{
	position: relative;
	margin: 0 auto;
	padding: 40px 0 0 0;
}
#share h2{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 40px);
	max-width: 580px;
	z-index: 10;
}
#share .h2bg{ bottom: -190%; padding-top: 22%; transform: translateX(0);}
#share .h2bg::before{width:110%;background-size: contain;background-image: url("../img/bg_ttl02.png");}
#share .shareWrap{
	position: relative;
	margin: 25px auto 0 auto;
	width: calc(100% - 70px);
	background-color: rgba(233,251,255,0.8);
	outline: solid 1px #ffffff;
	outline-offset: -1px;
	padding: 30px 20px 30px 20px;
}
#share ul{
	position: relative;
	margin: 0 auto;
	z-index: 11;
	gap:0 20px;
}
#share ul li{
	position: relative;
	margin: 0;
	width: calc(33% - 20px);
	max-width: 50px;
}

/* ----- pc ----- */
@media screen and (min-width: 641px) {

	header .navLogo img{height: 50px;}

	/* タイトル装飾 */
	.h2bg{
		left: 50%;
		bottom: -62%;
		padding-top: 124px;
		transform: translateX(-50%);
		max-width: 680px;
	}
	.h2bg::before{background-size: 100% auto;}

	/* lead */
	#lead .title{margin: 20px auto 0 auto;}
	#lead .leadTxt{
		max-width: 960px;
		padding: 50px 0;
		text-align: center;
	}
	#lead .leadTxt .bg{
		top:-98px;
		left: -60px;
		width: calc(100% + 150px);
		height: calc(100% + 156px);
		background-image: url("../img/bg_lead_l_pc.png"),  url("../img/bg_lead_r_pc.png");
	}

	/* とは */
	#about{padding: 80px 0 0 0;}
	#about .textWrap{padding: 50px 20px 20px 20px;}
	#about .h2bg{bottom:-210%;padding-top: 120px;transform: translateX(calc(-50% + 20px));}
	#about .h2bg::before{width:100%;background-size: contain;}
	#about .text{
		padding: 50px 20px 30px 20px;
		max-width: 920px;
		text-align: center;
	}
	#about .text p{line-height: 2.2em;}

	/* バナー */
	#banner{padding: 60px 0 0 0;}
	#banner .lists{
		margin: 20px auto 50px auto;
		padding-bottom: 30px;
		gap:0 20px;
	}
	#banner .lists.online{margin: 30px auto 50px auto;}
	#banner .lists .Images{
		width: calc(45% - 30px);
		margin: 25px 0 0 30px;
	}
	#banner .lists .Text{
		padding: 0;
		width: calc(55% - 20px);
	}
	#banner .lists .Ttl{
		margin: 1em auto 15px auto;
		text-align: left;
		font-size: min(2.8vw, .24rem);
	}
	#banner .lists .Txt{
		font-size: min(1.7vw, .16rem);
		line-height: 1.6em;
		padding-right: 30px;
	}
	#banner .lists .present{
		margin: 30px auto 0 auto;
		width: calc(100% - 110px);
		padding: 25px;
		gap: 0 40px;
	}
	#banner .lists .present .Img{
		margin: 0;
		width: 30%;
	}
	#banner .lists .present .Txt{
		position: relative;
		margin: 0;
		padding-right: 0;
		width: calc(70% - 40px);
		padding-top: 10px;
	}
	#banner .lists .present .Txt .Ttl{
		margin: 0 auto 15px auto;
		text-align: center;
		font-size: min(2vw, .18rem);
	}
	#banner .lists .links{margin: 20px auto;}

	#enter{margin:  120px auto 0 auto;}
	
	/* contact */
	#contact{
		margin: 120px auto 0 auto;
		max-width: 720px;
	}
	#contact h4{padding: 15px 0;}
	#contact .text .button{margin: 30px auto;}
	
	/* login */
	#login{padding: 50px 0 0 0;}
	#login .h2bg{bottom:-160%;padding-top: 120px;transform: translateX(calc(-50% + 20px));mix-blend-mode: screen;}
	#login .h2bg::before{width:100%;background-size: contain;}
	#login .inputArea{
		margin: 60px auto 0 auto;
		max-width: 960px;
		padding: 20px 0 40px 0;
		text-align: left;
	}
	#login .inputArea p{margin:40px auto 0 auto;max-width: 800px}
	#login .inputArea p.lead{margin:20px auto 0 auto;text-align: center;}
	#login .inputArea p span{display: inline-block;padding-left: 0.5em;}
	#login .inputArea form{padding-bottom: 30px;}

	/*story */
	.story{padding-top: 70px;}
	.story h2{
		max-width: 930px;
		transform: translateY(-40px);
	}
	.story h2 img{
		margin: 0;
		max-width: 600px;
	}
	.story .storyWrap{
		margin: 20px auto 0 auto;
		padding: 0 0 50px 0;
	}
	#lastQ .story .storyWrap{padding: 50px 0;}
	.story .storyWrap .bg{
		top: -60px;
		left: -60px;
		width: calc(100% + 120px);
		padding-top: 540px;
		background-image: url("../img/bg_story_pc.png");
	}
	.story .storyWrap p{
		width: calc(100% - 120px);
		font-size: min(5vw, .18rem);
		line-height: 1.8em;
		text-align: left !important;
	}
	.story .storyWrap .Img{width: min(50%, 453px);}
	.story .storyWrap .Img img{
		margin: -190px auto 0 auto;
		transform: translateX(50px);
	}

	/* mission */
	.mission{margin:  80px auto 20px auto;}
	.mission .missionWrap{
		padding: 50px 0;
		max-width: 960px;
	}
	.mission .hintWrap .Btnhint{
		padding: 5px 20px;
		font-size: .16rem;
	}
	.mission .hintWrap .hintTxt{font-size: .16rem;}

	/* clear */
	#clear .title{margin:-25px auto 0 auto;max-width: 1040px;}
	#clear .title img{margin: 0 auto;}
	#clear .clearTxt{
		max-width: 960px;
		padding: 50px 15px 120px 15px;
	}
	#clear .clearTxt .bg{
		top:-5px;
		left: -5px;
		width: calc(100% + 10px);
		height: calc(100% + 10px);
		background-image: url("../img/bg_clear_pc.png");
	}

	.titlebg{
		left: 50%;
		transform: translateX(-50%);
		top:50.5%;
		padding-top: 120px;
		max-width: 580px;
	}
	#clear .clearTxt{
		margin: max(-5%, -52px) auto 0 auto;
		width: calc(100% - 120px);
		padding: 50px 60px;
		max-width: 840px;
	}
	#clear .clearTxt p{text-align: center;}

	/* share */
	#share{padding: 90px 0 60px 0;}
	#share .h2bg{bottom:-160%;padding-top: 120px;transform: translateX(calc(-50% - 40px));mix-blend-mode: screen;}
	#share .h2bg::before{width:100%;background-size: contain;}
	#share .shareWrap{
		margin: 50px auto 0 auto;
		max-width: 540px;
		padding: 50px 20px;
	}
	#share ul{gap: 0 30px;}
	#share ul li{max-width: 65px;}


}
